home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1995 April / macformat-023.iso / Shareware City / Education / PATR Lab 1.1 / PATR Examples / shieber3.patr < prev    next >
Encoding:
Text File  |  1995-01-01  |  3.5 KB  |  176 lines  |  [TEXT/PATR]

  1. % Sample Grammar 3
  2. %
  3. % From the book "An Introduction to Unification-Based
  4. % Approaches to Grammar" by Stuart Shieber (1986).
  5. %
  6. % Simplified by using the PATR Laboratory Lists.
  7.  
  8. %    TEST AS FOLLOWS:
  9. %
  10. %    PARSING        
  11. %
  12. %        String: knights have stormed cornwall
  13. %        String: uther persuades knights to storm cornwall
  14. %        String: * knights sleeps
  15. %
  16. %    GENERATION
  17. %
  18. %        Start Symbol :  s
  19. %        Max Tree Depth:  6    
  20. %        Mode: Random        
  21.  
  22.  
  23. % Rules
  24.  
  25. % Sentence formation
  26. s --> np, vp #
  27.     s:head = vp:head,
  28.     s:head:form = finite,
  29.     vp:subcat = [np].
  30.  
  31. % Trivial verb phrase
  32. vp --> v #
  33.     vp:head = v:head,
  34.     vp:subcat = v:subcat.
  35.  
  36. % Complements
  37. vp1 --> vp2, X #
  38.     vp1:head = vp2:head,
  39.     vp2:subcat = [X|Rest],
  40.     vp1:subcat = Rest.
  41.  
  42.  
  43. % Lexikon
  44.  
  45. word "uther" #
  46.     :cat = np,
  47.     :head:agreement:gender = masculine,
  48.     :head:agreement:person = third,
  49.     :head:agreement:number = singular,
  50.     :head:trans = uther.
  51.     
  52. word "cornwall" #
  53.     :cat = np,
  54.     :head:agreement:gender = masculine,
  55.     :head:agreement:person = third,
  56.     :head:agreement:number = singular,
  57.     :head:trans = cornwall.
  58.     
  59. word "knights" #
  60.     :cat = np,
  61.     :head:agreement:gender = masculine,
  62.     :head:agreement:person = third,
  63.     :head:agreement:number = plural,
  64.     :head:trans = knights.
  65.  
  66.     
  67. word "sleeps" #
  68.     :cat = v,
  69.     :head:form = finite,
  70.     :subcat = [Subj],
  71.     Subj:cat = np,
  72.     Subj:head:agreement:person = third,
  73.     Subj:head:agreement:number = singular,
  74.     :head:trans:pred = sleep,
  75.     :head:trans:arg1 = Subj:head:trans.
  76.  
  77. word "sleep" #
  78.     :cat = v,
  79.     :head:form = finite,
  80.     :subcat = [Subj],
  81.     Subj:cat = np,
  82.     Subj:head:agreement:number = plural,
  83.     :head:trans:pred = sleep,
  84.     :head:trans:arg1 = Subj:head:trans.
  85.  
  86. word "sleep" #
  87.     :cat = v,
  88.     :head:form = nonfinite,
  89.     :subcat = [Subj],
  90.     Subj:cat = np,
  91.     :head:trans:pred = sleep,
  92.     :head:trans:arg1 = Subj:head:trans.
  93.  
  94. word "storms" #
  95.     :cat = v,
  96.     :head:form = finite,
  97.     :subcat = [Obj,Subj],
  98.     Subj:cat = np,
  99.     Subj:head:agreement:person = third,
  100.     Subj:head:agreement:number = singular,
  101.     Obj:cat = np,
  102.     :head:trans:pred = storm,
  103.     :head:trans:arg1 = Subj:head:trans,
  104.     :head:trans:arg2 = Obj:head:trans.
  105.  
  106. word "stormed" #
  107.     :cat = v,
  108.     :head:form = presentparticiple,
  109.     :subcat = [Obj,Subj],
  110.     Subj:cat = np,
  111.     Obj:cat = np,
  112.     :head:trans:pred = storm,
  113.     :head:trans:arg1 = Subj:head:trans,
  114.     :head:trans:arg2 = Obj:head:trans.
  115.  
  116. word "storm" #
  117.     :cat = v,
  118.     :head:form = nonfinite,
  119.     :subcat = [Obj,Subj],
  120.     Subj:cat = np,
  121.     Obj:cat = np,
  122.     :head:trans:pred = storm,
  123.     :head:trans:arg1 = Subj:head:trans,
  124.     :head:trans:arg2 = Obj:head:trans.
  125.  
  126. word "has" #
  127.     :cat = v,
  128.     :head:form = finite,
  129.     :subcat = [Comp,Subj],
  130.     Subj:cat = np,
  131.     Subj:head:agreement:person = third,
  132.     Subj:head:agreement:number = singular,
  133.     Comp:cat = vp,
  134.     Comp:head:form = presentparticiple,
  135.     Comp:subcat = [Subj],
  136.     :head:trans:pred = perfective,
  137.     :head:trans:arg1 = Comp:head:trans.
  138.  
  139. word "have" #
  140.     :cat = v,
  141.     :head:form = finite,
  142.     :subcat = [Comp,Subj],
  143.     Subj:cat = np,
  144.     Subj:head:agreement:number = plural,
  145.     Comp:cat = vp,
  146.     Comp:head:form = presentparticiple,
  147.     Comp:subcat = [Subj],
  148.     :head:trans:pred = perfective,
  149.     :head:trans:arg1 = Comp:head:trans.
  150.     
  151. word "persuades" #
  152.     :cat = v,
  153.     :head:form = finite,
  154.     :subcat = [Obj,Comp,Subj],
  155.     Subj:cat = np,
  156.     Subj:head:agreement:person = third,
  157.     Subj:head:agreement:number = singular,
  158.     Obj:cat = np,
  159.     Comp:cat = vp,
  160.     Comp:head:form = infinitival,
  161.     Comp:subcat = [Obj],
  162.     :head:trans:pred = persuade,
  163.     :head:trans:arg1 = Subj:head:trans,
  164.     :head:trans:arg2 = Obj:head:trans,
  165.     :head:trans:arg3 = Comp:head:trans.
  166.  
  167. word "to" #
  168.     :cat = v,
  169.     :head:form = infinitival,
  170.     :subcat = [Comp,Subj],
  171.     Subj:cat = np,
  172.     Comp:cat = vp,
  173.     Comp:head:form = nonfinite,
  174.     Comp:subcat = [Subj],
  175.     :head:trans = Comp:head:trans.
  176.